The present invention relates generally to interface devices between humans and computers, and more particularly to computer input devices that provide force feedback to the user.
Computer systems can be used for a variety of applications, including simulations and games which are very popular with consumers. A computer system typically displays a visual environment to a user on a display screen or other visual output device. Users can interact with the displayed environment to perform functions on the computer, such as playing a game, experience a simulation or virtual reality environment, use a computer aided design system, operate a graphical user interface (GUI), perform file manipulation, or otherwise influence events or images depicted on the screen. Such user interaction can be implemented through the use of a human/computer interface device, such as a joystick, mouse, trackball, stylus, tablet, or the like, that is connected to the computer system controlling the displayed environment. Typically, the computer updates the environment in response to the user""s manipulation of a user-manipulatable physical object such as a joystick handle or mouse, and provides visual feedback to the user utilizing the display screen and, typically, audio speakers. The computer senses the user""s manipulation of the object through sensors provided on the interface device.
One common use for computer and virtual reality systems is for simulations and games. For example, a user can operate a simulated fighter aircraft or spacecraft by manipulating controls such as a joystick and other buttons and view the results of controlling the aircraft on display device portraying a virtual reality simulation or game of the aircraft in flight. In other applications, a user can manipulate objects and tools in the real world, such as a stylus, and view the results of the manipulation in a virtual reality world with a xe2x80x9cvirtual stylusxe2x80x9d viewed on a screen, in 3-D goggles, etc. In yet other applications, activities such as medical procedures, vehicle training, etc., virtual reality computer systems and simulations are used for training purposes to allow a user to learn from and experience a realistic xe2x80x9cvirtualxe2x80x9d environment.
In addition to sensing and tracking a user""s manual activity and feeding such information to the controlling computer to provide a 3D visual representation to the user, a human interface mechanism should also provide tactile or haptic feedback to the user, more generally known as xe2x80x9cforce feedback.xe2x80x9d The need for the user to obtain realistic force information and experience force sensation is extensive in many kinds of simulation and greatly enhances an experience of a virtual environment or game. For example, in a simulated environment, the impact of a user controlled object against a xe2x80x9cvirtual wallxe2x80x9d should feel as if a hard object were impacted. Similarly, in 3-D virtual world simulations where the user can manipulate objects, force feedback is necessary to realistically simulate physical objects; for example, if a user touches a pen to a table, the user should feel the impact of the pen on the table. For simulations or games involving controlled vehicles, force feedback for controls such as a joystick can be desirable to realistically simulate experienced conditions, such as high acceleration in an aircraft, or the viscous, mushy feel of steering a car in mud. An effective human interface not only acts as an input device for tracking motion, but also as an output device for producing realistic force or xe2x80x9cfeelxe2x80x9d sensations.
Force feedback interface devices can provide physical sensations to the user manipulating a user manipulable object of the interface device through the use of computer-controlled actuators, such as motors, provided in the interface device. In most of the prior art force feedback interface devices, the host computer directly controls forces output by controlled actuators of the interface device, i.e., a host computer closes a control loop around the system to generate sensations and maintain stability through direct host control. This configuration has disadvantages in the inexpensive mass market, since the functions of reading sensor data and outputting force values to actuators can be a burden on the host computer""s processor which detracts from the performance of the host in other host tasks and application execution. In addition, low bandwidth interfaces are often used, which reduces the ability of the host computer to control realistic forces requiring high frequency signals.
For example, in one type of force feedback interface described in U.S. Pat. No. 5,184,319, by J. Kramer, force and texture information is provided to a user. The interface consists of an glove or xe2x80x9cexoskeletonxe2x80x9d which is worn over the user""s appendages, such as fingers, arms, or body. Forces can be applied to the user""s appendages using tendon assemblies and actuators controlled by a computer system to simulate force and textual feedback. However, the system described by Kramer includes a host computer directly controlling the actuators of the device, and thus has the disadvantages mentioned above. In addition, the Kramer device is not easily applicable to simulated environments where an object is referenced in virtual space and force feedback is applied to the object. The forces applied to the user in Kramer are with reference to the body of the user; the absolute location of the user""s appendages are not easily calculated. In addition, the exoskeleton devices of Kramer can be complex, cumbersome or even dangerous to the user if extensive devices are worn over the user""s appendages.
Typical multi-degree-of-freedom apparatuses that include force feedback also include several other disadvantages. Since actuators which supply force feedback tend to be heavier and larger than sensors, they would provide inertial constraints if added to a device. There is also the problem of coupled actuators, where each actuator is coupled to a previous actuator in a chain such that a user who manipulates the object must carry the inertia of all of the subsequent actuators and links except for the first actuator in the chain. These types of interfaces also introduce tactile xe2x80x9cnoisexe2x80x9d to the user through friction and compliance in signal transmission and limit the degree of sensitivity conveyed to the user through the actuators of the device.
In other situations, low-cost and portable mechanical interfaces having force feedback are desirable. Active actuators, such as motors, generate forces on an interface device and the user manipulating the interface device so that the interface device can move independently of the user. While active actuators often provide quite realistic force feedback, they can also be quite bulky and typically require large power supplies to operate. In addition, active actuators typically require high speed control signals to operate effectively and provide stability. In many situations, such high speed control signals and high power drive signals are not available or too costly, especially in the competitive, low-cost market of personal computers. Furthermore, active actuators can sometimes prove unsafe for a user when strong, unexpected forces are generated on a user of the interface who does not expect those forces.
The present invention provides a human/computer interface apparatus and method which can provide multiple degrees of freedom and highly realistic force feedback to a user of the apparatus. The preferred apparatus includes a local microprocessor used for enabling feel sensations including virtual walls and viscous damping in a virtual environment, thus permitting a low-cost force feedback interface device to be implemented.
More specifically, an interface device of the present invention is used in conjunction with a host computer for monitoring user manipulations and for enabling the simulation of feel sensations in response to the user manipulations, where the feel sensations are generated in accordance with application software running on the host computer. The device includes a user manipulatable object physically contacted by a user and movable in at least two degrees of freedom by the user and a gimbal mechanism coupled to and providing at least two degrees of freedom to the user object. The user object can be a joystick, stylus, pool cue, or other object. A local microprocessor, separate from the host computer system and operating simultaneously with the application software on the host, enables communication with the host computer and receives commands from the host, decodes the commands, outputs actuator signals in accordance with one or more of the commands, receives sensor signals, and reports data to the host in response to one or more of the commands. A communication interface is included for transmitting signals from the host computer to the local microprocessor and vice versa, and can be a serial communication bus such as RS232, or a wireless interface. Multiple actuators generate feel sensations by providing a force on the user object in at least two degrees of freedom in response to the actuator signals from the local microprocessor, and may include passive actuators such as brakes. At least one sensor detects the motion of the user object and reports sensor signals to the local microprocessor representative of motion of the user object. Finally, memory is included locally to the local microprocessor for storing program instructions, including routines for enabling communication between the local microprocessor and the host computer, for decoding host commands, for reporting data to the host, and for generating feel sensations utilizing the actuators in accordance with software running on the host computer. In one embodiment, a play mechanism such as a flexure is also included between actuator and user object. In some embodiments, the interface device includes a gimbal mechanism such as a 5-bar closed-loop linkage or a slotted bail. A transmission mechanism can be included to provide mechanical advantage, and may be a capstan cable drive system including a flexible member such as a cable.
The feel sensation generated on the user is, in one embodiment, a damping sensation simulating a feel of motion through a fluid. A damping constant is initialized by the local microprocessor indicating the degree of resistance experienced by the user. A current, position of the user object is stored by the local microprocessor, a difference between current and previous position values of the user object is determined preferably by the local microprocessor, and a sign of the difference is used as an indication of a direction of motion of the user object in one or more of the degrees of freedom. A variable representing force output is determined as a function of the damping constant and the difference, a digital representation of the variable is sent by the local microprocessor to a digital to analog converter (DAC), and a resulting analog signal is output to at least one of the actuators.
In another embodiment, the feel sensation is a wall sensation simulating the feel of impacting a surface or obstruction. The wall sensation is generated at least in part preferably by the local microprocessor which tracks the position of the user object by reading said sensors. The host computer updates a display of the simulation in response to user manipulation of the user object and determines that a simulated obstruction has been encountered and that such an obstruction should restrict motion of the user object in one or more directions. The actuator generates a force to create a physical representation of said restriction of motion, thereby providing the user with a feel of hitting the simulated obstruction. The local microprocessor also detects motion of the user object away from the simulated obstruction and deactivates the actuators, thereby simulating the feel of moving out of contact with the obstruction. The simulation on the host computer may include a cursor, where a location of the cursor on a display is updated by the host computer in response to user manipulation of the user object, and where the wall sensation is generated in response to interaction between the cursor and the obstruction.
The interface of the present invention enables force sensations in a virtual environment, such as hard walls and viscous damping, advantageously using a low cost interface device. A local microprocessor receives commands from the host computer, decodes the commands, outputs actuator signals in accordance with the commands, receives sensor signals, and reports data to the host in response to the commands, thus relieving the host computer of substantial computational burden and allowing a slower interface between host and interface device to be used. Viscous damping is enabled using the local microprocessor to compute present and previous positions of the user manipulated object to determine an amount of viscous force. Virtual walls are likewise enabled by using the microprocessor to track positions of the user object to determine when wall forces are output. These improvements allow a computer system to accurately control a low-cost interface providing realistic force feedback.
These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following specification of the invention and a study of the several figures of the drawing.